package main

import (
	"fmt"
	"math/rand"
	"time"
)

// 1、打印九九乘法表。如果可以要求间隔均匀。
func multiplicationTable() {
	for i := 1; i <= 9; i++ {
		for j := 1; j <= i; j++ {
			if j == 1 {
				fmt.Printf("%d*%d=%-2d", j, i, i*j)
			} else {
				fmt.Printf("%d*%d=%-3d", j, i, i*j)
			}
		}
		fmt.Println()
	}
}

// 2、随机生成20以内的20个非0正整数，打印出来。对生成的数值，第单数个（不是索引）累加求和，第偶数个累乘求积。打印结果
func randomData() {
	src := rand.NewSource(time.Now().UnixNano())
	r := rand.New(src)
	sum := 0
	pro := 1
	for i := 1; i <= 20; i++ {
		s := r.Intn(20) + 1
		fmt.Printf("第%d个随机数: %d\n", i, s)
		if i%2 == 0 {
			pro *= s

		} else {
			sum += s
		}
	}
	fmt.Println("第单数个累加求和为：", sum)
	fmt.Println("第偶数个累乘求积为：", pro)
}

// 3 打印100以内的斐波那契数列
func fibonacci() {
	a, b := 1, 1
	fmt.Println(a)
	fmt.Println(b)
	for {
		a, b = b, a+b
		if b >= 100 {
			break
		}
		fmt.Println(b)
	}
}

func main() {

	// multiplicationTable()
	randomData()
	fibonacci()
}
